home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2006 May / PCpro_2006_05.ISO / files / mobile / fma-2.0-stable-setup.exe / {app} / source / uKeyPad.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2004-06-30  |  3.9 KB  |  165 lines

  1. unit uKeyPad;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, StdCtrls, ComCtrls, ExtCtrls, Buttons, Placemnt;
  8.  
  9. type
  10.   TfrmKeyPad = class(TForm)
  11.     Button1: TButton;
  12.     Button2: TButton;
  13.     Button3: TButton;
  14.     Button4: TButton;
  15.     Button5: TButton;
  16.     Button6: TButton;
  17.     Button7: TButton;
  18.     Button8: TButton;
  19.     Button9: TButton;
  20.     GroupBox1: TGroupBox;
  21.     Button10: TButton;
  22.     Button11: TButton;
  23.     Button12: TButton;
  24.     Button13: TButton;
  25.     Button14: TButton;
  26.     Button15: TButton;
  27.     Button16: TButton;
  28.     Button17: TButton;
  29.     Button18: TButton;
  30.     Button19: TButton;
  31.     Button20: TButton;
  32.     Button21: TButton;
  33.     Timer1: TTimer;
  34.     SpeedButton1: TSpeedButton;
  35.     SpeedButton2: TSpeedButton;
  36.     Button22: TButton;
  37.     Button23: TButton;
  38.     Button24: TButton;
  39.     FormPlacement1: TFormPlacement;
  40.     procedure KeyClick(Sender: TObject);
  41.     procedure Timer1Timer(Sender: TObject);
  42.     procedure KeyPadMouseDown(Sender: TObject; Button: TMouseButton;
  43.       Shift: TShiftState; X, Y: Integer);
  44.     procedure KeyPadMouseUp(Sender: TObject; Button: TMouseButton;
  45.       Shift: TShiftState; X, Y: Integer);
  46.     procedure SpeedButton1Click(Sender: TObject);
  47.     procedure SpeedButton2Click(Sender: TObject);
  48.   private
  49.     { Private declarations }
  50.     FTime: Integer;
  51.     FButton: TButton;
  52.     procedure SendKey(Key: String; Timestr: String = '');
  53.   public
  54.     { Public declarations }
  55.     procedure SetKeysMode(T610: boolean = True);
  56.   end;
  57.  
  58. var
  59.   frmKeyPad: TfrmKeyPad;
  60.  
  61. implementation
  62.  
  63. uses Unit1;
  64. {$R *.dfm}
  65.  
  66. procedure TfrmKeyPad.KeyClick(Sender: TObject);
  67. var
  68.    key: String;
  69. begin
  70.    Key := (Sender as TButton).Hint;
  71.    Form1.TxAndWait('AT+CKPD="' + key + '"', 'OK');
  72. end;
  73.  
  74. procedure TfrmKeyPad.Timer1Timer(Sender: TObject);
  75. begin
  76.     KeyPadMouseUp(FButton, mbLeft, [], 0, 0);
  77.     ShowMessage('Key Sent.');
  78. end;
  79.  
  80. procedure TfrmKeyPad.KeyPadMouseDown(Sender: TObject;
  81.   Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  82. begin
  83.    if Button = mbRight then Exit;
  84.    FButton := (Sender as TButton);
  85.    FTime := GetTickCount;
  86.    Timer1.Enabled := True;
  87. end;
  88.  
  89. procedure TfrmKeyPad.KeyPadMouseUp(Sender: TObject; Button: TMouseButton;
  90.   Shift: TShiftState; X, Y: Integer);
  91. var
  92.    key: String;
  93. begin
  94.    if Button = mbRight then Exit;
  95.    Timer1.Enabled := False;
  96.    FTime := Round((GetTickCount - cardinal(FTime))/100);
  97.    Key := (Sender as TButton).Hint;
  98.    if FTime < 15 then
  99.       SendKey(Key)
  100.    else
  101.       SendKey(key, IntToStr(FTime));
  102. end;
  103.  
  104. procedure TfrmKeyPad.SpeedButton1Click(Sender: TObject);
  105. begin
  106.    SendKey('U');
  107. end;
  108.  
  109. procedure TfrmKeyPad.SpeedButton2Click(Sender: TObject);
  110. begin
  111.    SendKey('D');
  112. end;
  113.  
  114. procedure TfrmKeyPad.SendKey(Key: String; Timestr: String);
  115. begin
  116.    frmKeyPad.Enabled := False;
  117.    try
  118.       Form1.Debug('Sending Key....');
  119.       if Timestr <> '' then
  120.          Form1.TxAndWait('AT+CKPD="' + Key + '",' + Timestr, 'OK')
  121.       else
  122.          Form1.TxAndWait('AT+CKPD="' + Key + '"', 'OK');
  123.    except
  124.    end;
  125.    frmKeyPad.Enabled := True;
  126. end;
  127.  
  128. procedure TfrmKeyPad.SetKeysMode(T610: boolean);
  129. begin
  130.   if T610 then begin
  131.     Button6.Caption := '----';
  132.     Button6.Hint := '[';
  133.  
  134.     Button7.Caption := '----';
  135.     Button7.Hint := ']';
  136.  
  137.     Button8.Caption := 'Back';
  138.     Button8.Hint := ':R';
  139.  
  140.     Button22.Hint := ':J';
  141.  
  142.     Button23.Visible := True;
  143.     Button24.Visible := True;
  144.     ClientHeight := Button24.Top + Button24.Height + 4;
  145.   end
  146.   else begin
  147.     Button6.Caption := 'Yes';
  148.     Button6.Hint := 's';
  149.  
  150.     Button7.Caption := 'No';
  151.     Button7.Hint := 'e';
  152.  
  153.     Button8.Caption := 'OPT';
  154.     Button8.Hint := 'f';
  155.  
  156.     Button23.Visible := False;
  157.     Button24.Visible := False;
  158.     
  159.     Button22.Hint := 's';
  160.     ClientHeight := Button2.Top + Button2.Height + 4;
  161.   end;
  162. end;
  163.  
  164. end.
  165.